home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / mint / utils / lack.zoo / vaproto.h < prev    next >
C/C++ Source or Header  |  1991-04-24  |  7KB  |  213 lines

  1. /*
  2.  * vaproto.h
  3.  *
  4.  * project: venus
  5.  *
  6.  * author: stefan eissing
  7.  *
  8.  * description: definition of the Venus <-> accessory protcol
  9.  *
  10.  * last change: 28.09.1990
  11.  */
  12.  
  13. #ifndef __vaproto__
  14. #define __vaproto__
  15.  
  16. /* message numbers for the XACC protocol by Konrad Hinsen
  17.  * Gemini supports XACC level 0. These are not needed for
  18.  * the Venus-Acc. protocol.
  19.  */
  20. #define ACC_ID        0x400
  21. #define ACC_OPEN    0x401
  22. #define ACC_CLOSE    0x402
  23. #define ACC_ACC        0x403
  24.  
  25. /* message number for communication between Venus and accessories.
  26.  * if file or pathnames are used in these messages you got to
  27.  * give absolute names (including drive letter), all letters need
  28.  * to be upper case. Pathnames always terminate with a backslash!
  29.  *
  30.  * messages from Venus start with VA
  31.  * message to Venus start with AV
  32.  *
  33.  * AV_PROTOKOLL can be used by accessories to ask which messages
  34.  * are supported by the main application (there are differences
  35.  * between Gemini and Venus). It would be fine if other GEM
  36.  * application would also support this protocol. At least,
  37.  * AV_SENDKEY is easy to implement and very useful!
  38.  */
  39.  
  40. /* AV_PROTOKOLL: message to ask which messages are supported.
  41.  * If you get no answer, the protocol isn't supported at all.
  42.  */
  43. #define AV_PROTOKOLL        0x4700
  44. /*
  45.  * Word 6+7: pointer to the name of the accessory. This name
  46.  *           has to be 8 chars long and nullterminated (like
  47.  *           it is neccessary for appl_find())
  48.  * The meaning of the bits in the words 3, 4 and 5 is:
  49.  * Word 3:
  50.  * Bit 0:        (VA_SETSTATUS)
  51.  * Bit 1:        (VA_START)
  52.  * All other bits are reserved for future extension and should
  53.  * therefore be set to zero. This is also neede for the bits
  54.  * in word 4 and 5.
  55.  */
  56.  
  57. /* VA_PROTOSTATUS: answer to AV_PROTKOLL. Words 3 to 7 contain
  58.  * information which features are supported. If a feature is
  59.  * supported the according bit is set to 1.
  60.  */
  61. #define VA_PROTOSTATUS        0x4701
  62. /*
  63.  * Word 6+7: pointer to the name of the application (8 chars long,
  64.  *           nullterminated, like appl_find() needs it.
  65.  * The meaning of the bits in the words 3, 4 and 5 is:
  66.  * Word 3:
  67.  * Bit 0        (AV_SENDKEY)
  68.  * Bit 1        (AV_ASKFILEFONT)
  69.  * Bit 2        (AV_ASKCONFONT, AV_OPENCONSOLE)
  70.  * Bit 3        (AV_ASKOBJECT)
  71.  * Bit 4        (AV_OPENWIND)
  72.  * Bit 5        (AV_STARTPROG)
  73.  * Bit 6        (AV_ACCWINDOPEN, AV_ACCWINDCLOSED)
  74.  * Bit 7        (AV_STATUS, AV_GETSTATUS)
  75.  * All other bits are reserved for future extension and should
  76.  * therefore be set to zero. This is also neede for the bits
  77.  * in word 4 and 5.
  78.  *
  79.  * AV_SENDKEY is very easy to support. Still interested? Read on.
  80.  */
  81.  
  82. /* AV_GETSTATUS: An accessory may ask for the status which it has
  83.  * given the application via AV_STATUS.
  84.  */
  85. #define AV_GETSTATUS        0x4703
  86.  
  87. /* AV_STATUS: An accessory can tell the main application its status.
  88.  * This status can be saved by the main application and restored
  89.  * if the program is started again. An accessory may then ask with
  90.  * AV_GETSTATUS for its status. Of course it has to knock with
  91.  * AV_PROTOKOLL first!
  92.  * Word 3+4: pointer to a string which contains no control
  93.  *           sequences and must not be longer than 256 chars.
  94.  *           This pointer may be NULL (0L).
  95.  */
  96. #define AV_STATUS            0x4704
  97.  
  98. /* VA_SETSTATUS: The main application tells the accessory its
  99.  * saved state which was requested by AV_GETSTATUS.
  100.  * Word 3+4: pointer to a string which contains no control
  101.  *           sequences and must not be longer than 256 chars.
  102.  *           This pointer may be NULL (0L).
  103.  */
  104. #define VA_SETSTATUS        0x4705
  105.  
  106. /* AV_SENDKEY: An accessory send a keyboard event to the main
  107.  * application. If an accessory doesn't use a certain key it
  108.  * sould inform the main application about it. (menu shortcuts
  109.  * can be active when an accessory window it on top)
  110.  * Word 3 = keyboard state (Shift, Alternate)   ev_mmokstate
  111.  * Word 4 = scan- and ascii-code                ev_mkreturn
  112.  */
  113. #define    AV_SENDKEY            0x4710
  114.  
  115. /* VA_START: Accessory will be activated (should be treated like
  116.  * AC_OPEN). Word 3+4 contains an pointer to a commandline and
  117.  * may be NULL. The commandline usually contains file and pathnames.
  118.  */
  119. #define VA_START            0x4711
  120.  
  121. /* AV_ASKFILEFONT: Asks for the font used in file windows.
  122.  */
  123. #define AV_ASKFILEFONT        0x4712
  124.  
  125. /* VA_FILEFONT: Returns the font used in file windows.
  126.  * Word 3 = font number (font id)
  127.  * Word 4 = font size (in points)
  128.  */
  129. #define VA_FILEFONT            0x4713
  130.  
  131. /* AV_ASKCONFONT: Asks for the font used in the console window.
  132.  */
  133. #define AV_ASKCONFONT        0x4714
  134.  
  135. /* VA_CONFONT: Returns the font used in the console window.
  136.  * Word 3 = font number      (font id)
  137.  * Word 4 = font size        (in points)
  138.  */
  139. #define VA_CONFONT            0x4715
  140.  
  141. /* AV_ASKOBJECT: Asks for the names of the selected objects. If
  142.  * no object is selected, the empty string is returned. If more
  143.  * than one obects is selected, the names are separated by spaces.
  144.  */
  145. #define AV_ASKOBJECT    0x4716
  146.  
  147. /* VA_OBJECT: Returns the name of the selected objects. Words 3+4
  148.  * contain a pointer to the string.
  149.  */
  150. #define VA_OBJECT        0x4717
  151.  
  152. /* AV_OPENCONSOLE: Gemini should open the console window.
  153.  * If it is already open, it is made the top window.
  154.  * Should only be used if transparent to the user!
  155.  */
  156. #define AV_OPENCONSOLE    0x4718
  157.  
  158. /* VA_CONSOLEOPEN: Returns if the console window could be opended.
  159.  * Word 3 == 0 (no) != 0 (yes)
  160.  */
  161. #define VA_CONSOLEOPEN    0x4719
  162.  
  163. /* AV_OPENWIND: The application should open a window. The path for
  164.  * the window and a wildcard is given. Instead of opening a window
  165.  * a program can also open the file selector with the given path
  166.  * and wildcard.
  167.  * Word 3+4 (Pointer) window path
  168.  * Word 5+6 (Pointer) wildcard used to display files
  169.  */
  170. #define AV_OPENWIND        0x4720
  171.  
  172. /* VA_WINDOPEN: Returns if the window could be opened.
  173.  * values as in VA_CONSOLEOPEN
  174.  */
  175. #define VA_WINDOPEN        0x4721
  176.  
  177. /* AV_STARTPROG: The main application should start a program.
  178.  * Gemini/Venus also takes installed applications into accout.
  179.  * So you can open any file with this message, Gemini will start
  180.  * the proper application.
  181.  * Word 3+4 (Pointer) filename (absolute path)
  182.  * Word 5+6 (Pointer) commandline (maybe NULL)
  183.  */
  184. #define AV_STARTPROG    0x4722
  185.  
  186. /* VA_PROGSTART: Returns if the program could be started.
  187.  * Word 3 == 0: no, != 0 yes
  188.  */
  189. #define VA_PROGSTART    0x4723
  190.  
  191. /* AV_ACCWINDOPEN: An accessory informs the application that it
  192.  * has opened a window.
  193.  * Word 3: AES-handle of the opened window.
  194.  */
  195. #define AV_ACCWINDOPEN    0x4724
  196.  
  197. /* VA_DRAGACCWIND: The application reports that someone has dragged
  198.  * an object into the accessory window. Works only if the 
  199.  * application knows via AV_ACCWINDOPEN about this window
  200.  * Word 3   AES-handle of the window
  201.  * Word 4   X-position of mouse cursor
  202.  * Word 5   Y-position of mouse cursor
  203.  * Word 6+7 pointer to a string containing the names of the objects.
  204.  */
  205. #define VA_DRAGACCWIND    0x4725
  206.  
  207. /* AV_ACCWINDCLOSED: The accessory reports that it has closed a
  208.  * window. 
  209.  * Word 3   AES-handle of the window
  210.  */
  211. #define AV_ACCWINDCLOSED    0x4726
  212.  
  213. #endif